FIG. 1 shows a conventional charging system 100 which includes a charger 102 for charging a battery pack 104. The battery pack 104 includes a charging switch 112, a discharging switch 114, and a battery management unit 116. The battery management unit 116 monitors multiple battery cells and controls the charging switch 112 and the discharging switch 114. If a safety event such as over-voltage, over-current, over-temperature, or short-circuit occurs in the battery pack 104 during a charging process, the battery management unit 116 turns off the charging switch 112 to stop charging of the battery pack 104. The charger 102 includes a power unit 106 for providing a charging power and a charger controller 108 for controlling the charger 102. The charger 102 also includes a charging switch 110 which is controlled by the charger controller 108. The charging switch 110 is turned off when the end of charge (EOC) condition is met.
In FIG. 1, the charging switch 112 is usually implemented by a power metal-oxide-semiconductor field-effect transistor (MOSFET) which is relatively large and expensive. Thus, it occupies more printed circuit board (PCB) space and increases cost. It also increases the power loss from charging and discharging because of its drain-to-source on-state resistance (Rdson). In discharge mode, even though the charging switch 112 does not perform any function, it still dissipates power. Usually the discharging current is much higher than the charging current, and so the charging switch dissipates a significant amount of power unnecessarily in discharge mode. Furthermore, although not shown in FIG. 1, driver circuitry is needed to drive the charging switch 112. The driver circuitry itself dissipates power even if the battery pack 104 is in a sleep mode or an idle mode. Also, the charging switch 112 may be damaged at the startup of the discharge mode, when a large discharging current is going through an internal body diode of the charging switch 112. This is a factor which makes the charging system 100 unreliable.